package com.data.bobostructure.chapter1;


import com.data.bobostructure.utils.SortUtils;

import java.util.Arrays;

/** 插入排序算法的实现
 *
 *      算法思想：向有序序列中，插入元素=========>整理扑克牌的意思
 */
@SuppressWarnings("compareable")
public class InsertSort01 {


    public static void insertionSort(Comparable arr[]){
//        假设从小到大的排序
        int len = arr.length;
        /*第一个元素不用排序*/
        for (int i=1;i<len;i++){
//        j不需要比较
            for (int j=i;j>0;j--){
                if (arr[j-1].compareTo(arr[j])==1){
                    SortUtils.swap(arr,j,j-1);
                }
                else
                    break;


            }
        }

    }

    public static void main(String[] args) {
        Integer[] arr = SortUtils.generateRandomArray(200000,20,1119000);
        Integer[] arr1 = Arrays.copyOf(arr,arr.length);
//        insertionSort(arr);
      SortUtils.testSort("com.data.structure.chapter1.InsertSort01","insertionSort",arr);
      SortUtils.testSort("com.data.structure.chapter1.SelectionSort03","sort",arr1);

//        SortUtils.printArr(arr);

    }



}
